<?php
/**
 * @param array $file_name 从表单获取到的file文件的名称；
 * @param $save_path       保存路径
 * @param int $image_size  限制图片大小
 */
function getUploads(array $file_name,$save_path,$image_size=1231321){
    $file = $file_name['ufile'];
    $tmp_name = $file['tmp_name'];// 文件路径
    $name = $file['name'];//文件名称；
    $error = $file['error'];//文件错误的信息；
    //判断文件的信息是否有误
    switch($error){
        case 1:
            die('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
        case 2:
            die('表示上传文件大小超出了HTML表单隐藏域属性的MAX＿FILE＿SIZE元素所指定的最大值。');
        case 3:
            die('表示文件只被部分上传');
        case 4:
            die('表示没有上传任何文件');
        case 6:
            die('找不到临时文件夹');
        case 7:
            die('文件写入失败。');
    }
    $size = $file['size'];// 文件的大小；
    if($size>$image_size){
        die('文件大小已超出我的范围');
    }
    $save_path = rtrim($save_path,'/').'/';
    $hz =  pathinfo($name)['extension'];
    $new_name = $save_path.date('YmdHis').rand(1000,9999).'.'.$hz;
    if(is_uploaded_file($tmp_name)){
        //开始上传；
        if(move_uploaded_file($tmp_name,$new_name)){
//            return '当前上传成功的文件名是：'.$new_name;
            return $new_name;
        }else{
            die("上传失败") ;
        }
    }else{
        die("请求方式有误");
    }

}


/**
 * 等比例缩放
 * @param $path 保存路径
 * @param $name 文件名称
 * @param $type
 * @param int $max
 * @param string $qz
 */
function getImages($path,$name,$type,$max=50,$qz="x_"){
    $path_name = rtrim($path,'/')."/".$name;
    $path_src = getimagesize($path_name);
    $src_width = $path_src[0];
    $src_height = $path_src[1];
    $image_type = $path_src['mime'];
    $img_type = $path_src[2];//获取图片类型的数字表示；
    //判断图片格式是否正确
    if(!in_array($image_type,$type)){
        die('图片的格式有误，请重新上传！');
    }
    //获取到缩放的倍数；
    if($src_width>$src_height){
        $min = $src_width / $max;
    }else{
        $min = $src_height / $max;
    }
    //创建一个新画布；
    $new_width = $src_width / $min;
    $new_height = $src_height / $min;
//    header('Content-type:'.$image_type);
    $new_im = imagecreatetruecolor($new_width,$new_height);
    if($img_type==1){
        $src_im = imagecreatefromgif($path_name);
    }elseif($img_type==2){
        $src_im = imagecreatefromjpeg($path_name);
    }elseif($img_type==3){
        $src_im = imagecreatefrompng($path_name);
    }
    //开始裁剪
    imagecopyresampled($new_im,$src_im,0,0,0,0,$new_width,$new_height,$src_width,$src_height);
    //输出图像
    //取名字
    $new_name = rtrim($path,"/")."/".$qz.$name;
    if($img_type==1){
        imagegif($new_im,$new_name);
        return true;
    }elseif($img_type==2){
        imagejpeg($new_im,$new_name);
        return true;
    }elseif($img_type==3){
        imagepng($new_im,$new_name);
        return true;
    }
    //释放资源
    imagedestroy($new_im);
    imagedestroy($src_im);
}

/**
 * @param array $file_name
 * @param $save_file
 * @param int $image_size
 * @return string
 */
function getMonUploads(array $file_name,$save_file,$image_size=12234334){
    $file = $file_name['ufile'];
    $name = $file['name'];
    $tmp_name = $file['tmp_name'];
    $size = $file['size'];
    $error = $file['error'];
    $save_file = rtrim($save_file,'/').'/';
    for($i=0;$i<count($name);$i++){
        //判断文件上传是否有误；
        switch($error[$i]){
            case 1:
                die('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
            case 2:
                die('表示上传文件大小超出了HTML表单隐藏域属性的MAX＿FILE＿SIZE元素所指定的最大值。');
            case 3:
                die('表示文件只被部分上传');
            case 4:
                die('表示没有上传任何文件');
            case 6:
                die('找不到临时文件夹');
            case 7:
                die('文件写入失败。');
        }
        //判断一下文件的大小是否超出范围
        if($size[$i]>$image_size){
            die('文件太大了');
        }
        //开始上传
        if(is_uploaded_file($tmp_name[$i])){
            $new_name = $save_file.date('YmdHis').rand(1000,9999).'.'.pathinfo($name[$i])['extension'];
            if(move_uploaded_file($tmp_name[$i],$new_name)){
                $arr[] = $new_name;
            }else{
                die('上传失败');
            }
        }else{
            die('请用post请求方式上传');
        }
    }
    return $arr;
}